home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il_c / ilDisplay.z / ilDisplay
Encoding:
Text File  |  2002-10-03  |  94.8 KB  |  1,980 lines

  1.  
  2.  
  3.  
  4. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllDDDDiiiissssppppllllaaaayyyy - displays multiple images in an X window
  10.  
  11.  
  12. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  13.      This is a base class with no inheritance.
  14.  
  15.  
  16. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  17.      #include <il/ilCdefs.h>
  18.  
  19.  
  20. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  21.      ilDisplay manages the display of multiple ilImages in an X window. An
  22.      ilImage of any size, color model, or orientation can be displayed. In
  23.      addition, any combination of ilImage can be displayed.  OOOOppppeeeennnnGGGGLLLL is used to
  24.      render the images if supported by the visual associated with the X
  25.      window, otherwise X is used. Multiple images are managed as a stack and
  26.      only the exposed area of each image is painted for optimal performance.
  27.  
  28.      AAAAddddddddiiiinnnngggg IIIImmmmaaaaggggeeeessss
  29.  
  30.      Any iiiillllIIIImmmmaaaaggggeeee can be added to the display by using the aaaaddddddddVVVViiiieeeewwww(((()))) member
  31.      function. ilDisplay creates an iiiillllVVVViiiieeeewwww for the image and puts it into a
  32.      view stack. By default, views are put on top of the stack. However, an
  33.      index can be specified or the mode can be used to control where the view
  34.      is inserted in the stack. Views are displayed based on their stacking
  35.      order. Therefore the view on top of the stack is unobscured and other
  36.      views in the stack may be obscured.  Member functions are provided for
  37.      manipulating the view stack such as push, pop, swap and delete.
  38.  
  39.      An iiiillllVVVViiiieeeewwww pointer is returned by aaaaddddddddVVVViiiieeeewwww() and can be used to manipulate
  40.      the view. For example the view can be repositioned and resized. See
  41.      ilView for more information. The pointer to an ilView can be found in
  42.      several ways using the image or index of the view or by specifying an xy
  43.      location.  When finding a view by xy location, a pointer to the topmost
  44.      view at that location is returned. Note that all views in the view stack
  45.      are deleted when ilDisplay is deleted.
  46.  
  47.      DDDDiiiissssppppllllaaaayyyy OOOOppppeeeerrrraaaattttoooorrrrssss
  48.  
  49.      ilDisplay provides several functions or display operators to manipulate
  50.      views within the display window. Display operators are used to do such
  51.      things as move the view within the display, change the size of the view
  52.      or moved the image within the view. These display operators can be
  53.      applied to one or more views in the view stack.  Typical arguments passed
  54.      to a display operator include an _x_y coordinate pair, a pointer to a _v_i_e_w,
  55.      and a _m_o_d_e.
  56.  
  57.      An _i_l_V_i_e_w* is passed to a display operator to specify which view to
  58.      operate on. If NULL is specified, all views in the stack are operated on.
  59.      However, a view is unaffected if its nop (no-operation) flag is set. The
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  71.  
  72.  
  73.  
  74.      function sssseeeettttNNNNoooopppp(((()))) can be used to set the nop flag on a single view or all
  75.      views in the stack.
  76.  
  77.      The _m_o_d_e parameter passed to display operators is comprised of one or
  78.      more bit fields. It is passed as an iiiinnnntttt value to allow the bit fields to
  79.      be combined using a bitwise OR. These bit fields are defined as
  80.      enumerated values in iiiillll////iiiillllDDDDiiiissssppppllllaaaayyyyDDDDeeeeffffssss....hhhh. There are several types of modes
  81.      defined, including: ilDefer to defer painting, ilClip to prevent moving
  82.      beyond the edge of the image, ilNoSwap to prevent swapping back/front
  83.      buffers, and operator-specific flags such as ilRightEdge for the wipe
  84.      operator and coordinate interpretation.
  85.  
  86.      The _x, _y coordinates passed to a display operator can be interpreted as
  87.      absolute values, change from current view configuration, or as relative
  88.      to the values initialized by sssseeeettttMMMMoooouuuusssseeee(((()))).  Coordinate interpretation is
  89.      specified by the following flags in _m_o_d_e:
  90.           _i_l_R_e_l_V_a_l    Interpreted relative to the starting _x_y position
  91.                       established with sssseeeettttMMMMoooouuuusssseeee(). The difference between the
  92.                       specified _x_y parameters and the starting _x_y location is
  93.                       used. The starting _x_y location is then updated. Useful
  94.                       for interactive manipulation.
  95.  
  96.           _i_l_O_l_d_R_e_l    Same as _i_l_R_e_l_V_a_l except that the starting _x,_y location
  97.                       is not updated. This is useful when doing several
  98.                       operations based on the same _x,_y coordinates.
  99.  
  100.           _i_l_D_e_l_V_a_l    Interpreted as changes (delta) to the current view
  101.                       configuration.
  102.  
  103.           _i_l_A_b_s_V_a_l    Interpreted as absolute values relative to the ilDisplay
  104.                       origin (upper-left).
  105.  
  106. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  107.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  108.  
  109.           ilDisplay* ilDisplayCreate(Display* display, Window parentWin,
  110.                                      int mode)
  111.           ilDisplay* ilDisplayCreateWindow(Display* display, int width,
  112.                                            int height, int attr,
  113.                                            int minComponentSize,
  114.                                            int maxComponentSize,
  115.                                            int mode, long eventMask)
  116.  
  117.      DDDDeeeessssttttrrrruuuuccccttttoooorrrr
  118.  
  119.           void ilDisplayDelete(ilDisplay* obj)
  120.  
  121.      SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn aaaannnndddd aaaabbbboooorrrrttttiiiinnnngggg
  122.  
  123.  
  124.  
  125.  
  126.                                                                         PPPPaaaaggggeeee 2222
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  134.  
  135.  
  136.  
  137.           void ilDisplaySyncPaint(ilDisplay *obj)
  138.           void ilDisplayFlush(ilDisplay *obj)
  139.           void ilDisplayAbort(ilDisplay *obj)
  140.           void ilDisplayEnableAutoAbort(ilDisplay *obj, int enable)
  141.           int ilDisplayIsAutoAbortEnabled(ilDisplay *obj)
  142.           void ilDisplayEnableQueueing(ilDisplay *obj, int enable)
  143.           int ilDisplayIsQueueingEnabled(ilDisplay *obj)
  144.  
  145.      XXXX WWWWiiiinnnnddddoooowwww aaaacccccccceeeessssssss aaaannnndddd ccccoooonnnnttttrrrroooollll
  146.  
  147.           void ilDisplayUpdateWindow(ilDisplay *obj)
  148.           void ilDisplaySetWindow(ilDisplay *obj, Window win, int mode)
  149.           ilXWindowImg* ilDisplayGetXWindowImg(ilDisplay *obj)
  150.           GLXContext ilDisplayGetGLXContext(ilDisplay *obj)
  151.           Window ilDisplayGetWindow(ilDisplay *obj)
  152.           Display* ilDisplayGetDisplay(ilDisplay *obj)
  153.           Display* ilDisplayGetILDisplay(ilDisplay *obj)
  154.           void ilDisplayCalcWindowSize(ilDisplay *obj, int* width,
  155.                                        int* height)
  156.           void ilDisplayDestroyNotify(ilDisplay *obj)
  157.  
  158.      CCCCoooonnnnttttrrrroooolllllllliiiinnnngggg ddddiiiissssppppllllaaaayyyy mmmmooooddddeeeessss
  159.  
  160.           void ilDisplaySetMode(ilDisplay *obj, int mode)
  161.           void ilDisplayEnableFrontRedraw(ilDisplay *obj, int enable)
  162.           int ilDisplayIsFrontRedrawEnabled(ilDisplay *obj)
  163.  
  164.      RRRReeeennnnddddeeeerrrriiiinnnngggg ccccaaaallllllllbbbbaaaacccckkkkssss
  165.  
  166.           void ilDisplaySetCallback(ilDisplay *obj, ilCallback* prepare,
  167.                                     ilCallback* render, ilCallback* finish)
  168.           void ilDisplayGetCallback(ilDisplay *obj, ilCallback** prepare,
  169.                                     ilCallback** render, ilCallback** finish)
  170.           void ilDisplayEnableCallback(ilDisplay *obj, int enable)
  171.           int ilDisplayIsCallbackEnabled(ilDisplay *obj)
  172.  
  173.      TTTTiiiilllleeee mmmmaaaappppppppiiiinnnngggg
  174.  
  175.           void ilDisplayMapTile(ilDisplay *obj, iflOrientation fromOrientation,
  176.                                 iflTile2Dint* tile, iflOrientation toOrientation(0))
  177.           void ilDisplayMapTileFloat(ilDisplay *obj, iflOrientation fromOrientation,
  178.                                      iflTile2Dfloat* tile, iflOrientation toOrientation(0))
  179.           void ilDisplayMapXY(ilDisplay *obj, iflOrientation fromOrientation,
  180.                               int* x, int* y, iflOrientation toOrientation(0))
  181.           void ilDisplayMapXYFloat(ilDisplay *obj, iflOrientation fromOrientation,
  182.                                    float* x, float* y, iflOrientation toOrientation(0))
  183.  
  184.      VVVViiiissssiiiibbbblllleeee aaaarrrreeeeaaaa ccccoooonnnnttttrrrroooollll
  185.  
  186.           void ilDisplaySetVisibleArea(ilDisplay *obj, int x, int y,
  187.                                        int nx, int ny)
  188.           void ilDisplayGetVisibleArea(ilDisplay *obj, int* x, int* y,
  189.  
  190.  
  191.  
  192.                                                                         PPPPaaaaggggeeee 3333
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  200.  
  201.  
  202.  
  203.                                        int* nx, int* ny)
  204.  
  205.      AAAAttttttttrrrriiiibbbbuuuutttteeee ggggeeeetttt aaaannnndddd sssseeeetttt
  206.  
  207.           void ilDisplayGetPos(ilDisplay *obj, int* x, int* y)
  208.           void ilDisplayGetSize(ilDisplay *obj, int* x, int* y)
  209.           int ilDisplayIsRgb(ilDisplay *obj)
  210.           int ilDisplayIsDoubleBuffer(ilDisplay *obj)
  211.           int ilDisplayIsDefer(ilDisplay *obj, ilView* view)
  212.           void ilDisplaySetDefer(ilDisplay *obj, int def, ilView* view)
  213.           int ilDisplayIsStereo(ilDisplay *obj)
  214.           int ilDisplayGetMargin(ilDisplay *obj)
  215.           void ilDisplaySetMargin(ilDisplay *obj, int margin)
  216.           float ilDisplayGetRoamLimit(ilDisplay *obj)
  217.           void ilDisplaySetRoamLimit(ilDisplay *obj, float maxRoamDel.0)
  218.           void ilDisplayGetRoamRate(ilDisplay *obj, float* x, float* y)
  219.           void ilDisplayGetBackground(ilDisplay *obj, float* red,
  220.                                       float* green, float* blue)
  221.           void ilDisplaySetBackground(ilDisplay *obj, float red,
  222.                                       float green, float blue)
  223.           iflColorModel ilDisplayGetColorModel(ilDisplay *obj)
  224.           void ilDisplaySetColormap(ilDisplay *obj, iflColormap* cmap)
  225.           ilStatus ilDisplayGetColormap(ilDisplay *obj, iflColormap* cmap)
  226.           ilStatus ilDisplayGetStatus(ilDisplay *obj)
  227.           void ilDisplaySetStatus(ilDisplay *obj, ilStatus stat)
  228.           void ilDisplayBackgroundSetDirty(ilDisplay *obj)
  229.  
  230.      VVVViiiieeeewwww mmmmaaaannnniiiippppuuuullllaaaattttiiiioooonnnn
  231.  
  232.           ilView* ilDisplayAddView(ilDisplay *obj, ilImage* img,
  233.                                    int index, int mode)
  234.           ilView* ilDisplayAddViewTop(ilDisplay *obj, ilImage* img,
  235.                                       int mode)
  236.           ilStereoView* ilDisplayAddStereoView(ilDisplay *obj, ilImage* imgL,
  237.                                                ilImage* imgR,
  238.                                                int index, int mode)
  239.           ilStereoView* ilDisplayAddStereoViewTop(ilDisplay *obj,
  240.                                                   ilImage* imgL,
  241.                                                   ilImage* imgR,
  242.                                                   int mode)
  243.           ilStereoView* ilDisplayAddStereoViewZ(ilDisplay *obj,
  244.                                                 ilImage* zImg,
  245.                                                 int zLeft, int zRight,
  246.                                                 int index, int mode)
  247.           ilStereoView* ilDisplayAddStereoViewZTop(ilDisplay *obj,
  248.                                                    ilImage* zImg,
  249.                                                    int zLeft,
  250.                                                    int zRight,
  251.                                                    int mode)
  252.           ilView* ilDisplayAddViewPtr(ilDisplay *obj, ilView* view,
  253.                                       int index, int mode)
  254.           void ilDisplayDeleteView(ilDisplay *obj, ilView* view)
  255.  
  256.  
  257.  
  258.                                                                         PPPPaaaaggggeeee 4444
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  266.  
  267.  
  268.  
  269.           void ilDisplayDeleteViewIdx(ilDisplay *obj, int index)
  270.           void ilDisplayAddViewChangeCallback(ilDisplay *obj, ilCallback* cb,
  271.                                               int autoDelete)
  272.           ilStatus ilDisplayRemoveViewChangeCallback(ilDisplay *obj,
  273.                                                      ilCallback* cb)
  274.           void ilDisplayPush(ilDisplay *obj, ilView* view, int count)
  275.           void ilDisplayPop(ilDisplay *obj, ilView* view, int count)
  276.           void ilDisplaySwap(ilDisplay *obj, ilView* view1, ilView* view2)
  277.           ilView* ilDisplayFindView(ilDisplay *obj, int x, int y,
  278.                                     int mode)
  279.           ilView* ilDisplayGetViewIdx(ilDisplay *obj, int index)
  280.           ilView* ilDisplayGetViewImg(ilDisplay *obj, ilImage* img)
  281.           int ilDisplayGetViewIndex(ilDisplay *obj, ilView* view)
  282.           int ilDisplayGetViewIndexImg(ilDisplay *obj, ilImage* img)
  283.           int ilDisplayGetNumViews(ilDisplay *obj)
  284.           ilView* ilDisplayGetLoc(ilDisplay *obj, float x, float y,
  285.                                   float* ix, float* iy, int mode)
  286.           ilView* ilDisplaySetLoc(ilDisplay *obj, float ix, float iy,
  287.                                   float x, float y, int mode)
  288.           ilView* ilDisplayGetPixel(ilDisplay *obj, int x, int y,
  289.                                     iflPixel* pix)
  290.           ilView* ilDisplaySetPixel(ilDisplay *obj, int x, int y,
  291.                                     iflPixel* pix)
  292.           int ilDisplayIsNop(ilDisplay *obj, ilView* view)
  293.           void ilDisplaySetNop(ilDisplay *obj, int noOp, ilView* view)
  294.           void ilDisplaySelect(ilDisplay *obj, ilView* view)
  295.           void ilDisplayUnselect(ilDisplay *obj, ilView* view)
  296.           int ilDisplayIsSelected(ilDisplay *obj, ilView* view)
  297.           void ilDisplaySetBorders(ilDisplay *obj, int enable, int mode)
  298.           void ilDisplaySetBorderStyle(ilDisplay *obj, int style)
  299.           void ilDisplaySetBorderColor(ilDisplay *obj, float red,
  300.                                        float green, float blue)
  301.           void ilDisplaySetBorderWidth(ilDisplay *obj, int width)
  302.  
  303.      DDDDiiiissssppppllllaaaayyyy ooooppppeeeerrrraaaattttoooorrrr ssssuuuuppppppppoooorrrrtttt
  304.  
  305.           void ilDisplaySetMouse(ilDisplay *obj, int x, int y, int mode)
  306.           void ilDisplayGetMouse(ilDisplay *obj, int* x, int* y)
  307.           void ilDisplayGetMouseOrientation(ilDisplay *obj, int* x,
  308.                                             int* y, iflOrientation orientation)
  309.           int ilDisplayFindEdge(ilDisplay *obj, int x, int y, int margin-1,
  310.                                 int mode)
  311.  
  312.      DDDDiiiissssppppllllaaaayyyy ooooppppeeeerrrraaaattttoooorrrrssss
  313.  
  314.           void ilDisplayDisplay(ilDisplay *obj, ilView* view, int vMode,
  315.                                 int iMode)
  316.           void ilDisplayRedrawArea(ilDisplay *obj, int x, int y,
  317.                                    int nx, int ny, iflOrientation orientation,
  318.                                    int mode)
  319.           void ilDisplayRedraw(ilDisplay *obj, int mode)
  320.           void ilDisplayPaintArea(ilDisplay *obj, int x, int y,
  321.  
  322.  
  323.  
  324.                                                                         PPPPaaaaggggeeee 5555
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  332.  
  333.  
  334.  
  335.                                   int nx, int ny, iflOrientation orientation,
  336.                                   ilView* view, int mode)
  337.           void ilDisplayPaint(ilDisplay *obj, ilView* view, int mode)
  338.           void ilDisplayQPaintArea(ilDisplay *obj, ilMpNode* parent,
  339.                                    int x, int y, int nx, int ny,
  340.                                    iflOrientation orientation,
  341.                                    ilView* view, int mode, ilMpManager** pMgr)
  342.           void ilDisplayQPaint(ilDisplay *obj, ilMpNode* parent,
  343.                                ilView* view, int mode, ilMpManager** pMgr)
  344.           void ilDisplayMoveView(ilDisplay *obj, int x, int y, ilView* view,
  345.                                  int mode)
  346.           void ilDisplayMoveImg(ilDisplay *obj, float x, float y,
  347.                                 ilView* view, int mode)
  348.           void ilDisplayMoveImgIdx(ilDisplay *obj, float x, float y,
  349.                                 ilView* view, int idx, int mode)
  350.           void ilDisplayWipe(ilDisplay *obj, int x, int y, ilView* view,
  351.                              int mode)
  352.           void ilDisplayWipeSplit(ilDisplay *obj, int x, int y,
  353.                                   int mode)
  354.           void ilDisplayWipeSize(ilDisplay *obj, int x, int y, ilView* view,
  355.                                  int mode)
  356.           void ilDisplaySplit(ilDisplay *obj, int mode)
  357.           void ilDisplayAlignImg(ilDisplay *obj, ilView* view, int mode)
  358.           void ilDisplayAlignView(ilDisplay *obj, ilView* view,
  359.                                   int mode, ilView* rView)
  360.           void ilDisplayUpdate(ilDisplay *obj, int x, int y, int nx,
  361.                                int ny, float imgX, float imgY,
  362.                                ilView* view, int mode)
  363.           ilStatus ilDisplaySave(ilDisplay *obj, ilImage* img, int x,
  364.                                  int y, int mode)
  365.  
  366.  
  367.  
  368. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  369.      iiiillllDDDDiiiissssppppllllaaaayyyy(((())))
  370.  
  371.           ilDisplay* ilDisplayCreate(Display* display, Window parentWin,
  372.                                      int mode)
  373.           ilDisplay* ilDisplayCreateWindow(Display* display, int width,
  374.                                            int height, int attr,
  375.                                            int minComponentSize,
  376.                                            int maxComponentSize,
  377.                                            int mode, long eventMask)
  378.  
  379.  
  380.           Both versions of the constructor create an ilDisplay object to
  381.           manage views of images within an X window. The _m_o_d_e parameter is
  382.           used to specify the view mode when adding ilViews objects with
  383.           aaaaddddddddVVVViiiieeeewwww().  For example, iiiillllDDDDeeeeffffeeeerrrr could be used to add views without
  384.           painting each one as it is added to the display.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                                                         PPPPaaaaggggeeee 6666
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  398.  
  399.  
  400.  
  401.           Since OpenGL and X rendering can be mixed, the render mode is
  402.           determined automatically. If the X visual associated with the window
  403.           supports OpenGL rendering then OpenGL rendering will be used.
  404.           Otherwise X rendering will be used. Note that hardware acceleration
  405.           only occurs during OpenGL rendering.
  406.  
  407.           The second version of the constructor creates an X window as
  408.           specified by the various parameters. The created window will be
  409.           _w_i_d_t_h wide, _h_e_i_g_h_t high with the attributes specified by _a_t_t_r,
  410.           _m_i_n_C_o_m_p_o_n_e_n_t_S_i_z_e and _m_a_x_C_o_m_p_o_n_e_n_t_S_i_z_e for the visual class.  See
  411.           iiiillllXXXXWWWWiiiinnnnddddoooowwwwIIIImmmmgggg for more information. In addition, it will select the X
  412.           events passed in _e_v_e_n_t_M_a_s_k.
  413.  
  414.           A background view is created and is painted by default. However, if
  415.           ilDefer is passed in _m_o_d_e, painting will be deferred.  Also, an RGB
  416.           colormap will be loaded if needed. However, an application can load
  417.           a colormap or use the default colormap by passing ilDefaultCmap in
  418.           _m_o_d_e. This will cause ilDisplay to not load a colormap.
  419.  
  420.      iiiillllDDDDiiiissssppppllllaaaayyyyDDDDeeeelllleeeetttteeee(((())))
  421.  
  422.           void ilDisplayDelete(ilDisplay* obj)
  423.  
  424.  
  425.           Removes and deletes all of the allocated pointers and items used by
  426.           the ilDisplay. Also deletes all view in the view stack.
  427.  
  428.      aaaabbbboooorrrrtttt(((())))
  429.  
  430.           void ilDisplayAbort(ilDisplay *obj)
  431.  
  432.  
  433.           This method aborts any queued paint requests.  It works in
  434.           conjunction with the eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg() method.
  435.  
  436.      aaaaddddddddSSSStttteeeerrrreeeeooooVVVViiiieeeewwww(((())))
  437.  
  438.           ilStereoView* ilDisplayAddStereoView(ilDisplay *obj, ilImage* imgL,
  439.                                                ilImage* imgR,
  440.                                                int index, int mode)
  441.           ilStereoView* ilDisplayAddStereoViewTop(ilDisplay *obj,
  442.                                                   ilImage* imgL,
  443.                                                   ilImage* imgR,
  444.                                                   int mode)
  445.           ilStereoView* ilDisplayAddStereoViewZTop(ilDisplay *obj,
  446.                                                    ilImage* zImg,
  447.                                                    int zLeft,
  448.                                                    int zRight,
  449.                                                    int mode)
  450.           ilStereoView* ilDisplayAddStereoViewZ(ilDisplay *obj,
  451.                                                 ilImage* zImg,
  452.                                                 int zLeft, int zRight,
  453.  
  454.  
  455.  
  456.                                                                         PPPPaaaaggggeeee 7777
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  464.  
  465.  
  466.  
  467.                                                 int index, int mode)
  468.  
  469.  
  470.           These methods allow a pair of ilImages to be specified as the left
  471.           image and the right image of a stereo pair. In addition, a stereo
  472.           pair may be stored in a single image using the Z dimension. In this
  473.           case, the image is specified as _z_I_m_g. The Z index to the left image
  474.           is specified as _z_L_e_f_t and the Z index to the right image is
  475.           specified as _z_R_i_g_h_t. By default, zLeft is 0 and zRight is 1. The
  476.           advantage of this approach, is that a single IL chain can be used to
  477.           process the stereo pair, rather than having a chain to process each
  478.           image.
  479.  
  480.      aaaaddddddddVVVViiiieeeewwww(((())))
  481.  
  482.           ilView* ilDisplayAddView(ilDisplay *obj, ilImage* img,
  483.                                    int index, int mode)
  484.           ilView* ilDisplayAddViewTop(ilDisplay *obj, ilImage* img,
  485.                                       int mode)
  486.           ilView* ilDisplayAddViewPtr(ilDisplay *obj, ilView* view,
  487.                                       int index, int mode)
  488.  
  489.  
  490.           Creates an ilView for the image specified by, _i_m_g, and adds it to
  491.           the view stack at the index specified by, _i_d_x. By default, the view
  492.           is added to the top of the stack. If _i_d_x equals _i_l_L_a_s_t, the view is
  493.           added to the bottom of the stack. The mode parameter controls the
  494.           creation and position of the ilView. By default, the ilView is the
  495.           size of the image. However, if _i_l_C_l_i_p is passed in _m_o_d_e, then the
  496.           ilView will be clipped to the size of the display window. By
  497.           default, the view is painted after it is added to the stack.
  498.           However, if _i_l_D_e_f_e_r is passed, then painting is deferred. Also, an
  499.           alignment mode such as _i_l_C_e_n_t_e_r may be passed to control how the
  500.           image is aligned within the view and how the view is aligned within
  501.           the display window. Center alignment is used by default.
  502.  
  503.           Several versions of aaaaddddddddVVVViiiieeeewwww() are provided for convenience. The
  504.           version that takes an index, allows the position in the view stack
  505.           to be specified. Often however, putting the image on top of the
  506.           stack is acceptable and only the image and mode need to be
  507.           specified. Therefore, a second version is provided that only
  508.           requires an image and a mode to be specified.  Since this version
  509.           puts the view on top of the view stack, its name ends with "Top".
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.                                                                         PPPPaaaaggggeeee 8888
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  530.  
  531.  
  532.  
  533.      aaaaddddddddVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  534.  
  535.           void ilDisplayAddViewChangeCallback(ilDisplay *obj, ilCallback* cb,
  536.                                               int autoDelete)
  537.  
  538.  
  539.           This method adds a callback that will be triggered whenever a view
  540.           is added to or deleted from this object.  Either
  541.           ilViewChangeMethodCB or ilViewChangeFunctionCB can used with this
  542.           method. The callback method or function will have the prototype:
  543.  
  544.               func(UserArgType userArg, ilViewChangeArg* callerArg)
  545.  
  546.  
  547.           To define and use a view change callback to a member function you
  548.           might do something like:
  549.  
  550.               ...
  551.               ilStatus Bar::change(Foo*, ilViewChangeArg*) { ... }
  552.               ...
  553.               typedef ilViewChangeMethodCB<Bar,Foo*> ViewChangeCallback;
  554.  
  555.               Bar bar;
  556.               Foo foo;
  557.               ViewChangeCallback changeCb(&bar, Bar::change, &foo);
  558.  
  559.               disp->addViewChangeCallback(&changeCb);
  560.  
  561.  
  562.           The passed ilViewChangeArg contains two members:
  563.  
  564.           _r_e_a_s_o_n    The reason for this callback: either _i_l_V_i_e_w_A_d_d_e_d or
  565.                     _i_l_V_i_e_w_D_e_l_e_t_e_d.
  566.  
  567.           _v_i_e_w      The view being added or the view about to be deleted.
  568.  
  569.      aaaalllliiiiggggnnnnIIIImmmmgggg(((())))
  570.  
  571.           void ilDisplayAlignImg(ilDisplay *obj, ilView* view, int mode)
  572.  
  573.  
  574.           Aligns the image in the specified view based on _m_o_d_e. If NULL is
  575.           passed, then the image in all views in the view stack are aligned
  576.           (expect those with nop flag set). For example, if ilCenter is
  577.           specified, the images are centered within the view.  Similarly, if
  578.           ilBottomLeft is specified, the lower left corner of the image is
  579.           aligned to the lower left corner of the view. See _i_l/_i_l_D_i_s_p_l_a_y_D_e_f._h
  580.           for a complete list of modes.
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                                                                         PPPPaaaaggggeeee 9999
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  596.  
  597.  
  598.  
  599.      aaaalllliiiiggggnnnnVVVViiiieeeewwww(((())))
  600.  
  601.           void ilDisplayAlignView(ilDisplay *obj, ilView* view,
  602.                                   int mode, ilView* rView)
  603.  
  604.  
  605.           Aligns the specified view to the reference view specified in _r_V_i_e_w.
  606.           If NULL is passed then all views are aligned (except those with nop
  607.           flag set). The two views are aligned based on bit flags passed in
  608.           _m_o_d_e. For example, it ilCenter is specified, the center of the view
  609.           is aligned to the center of the reference view. Similarly, if
  610.           ilTopRight is specified, the upper right corner of the view is
  611.           aligned to the upper right corner of the reference view. If NULL is
  612.           passed in rView, the background view in ilDisplay is used. See
  613.           _i_l/_i_l_D_i_s_p_l_a_y_D_e_f._h for a complete list of modes.
  614.  
  615.      ccccaaaallllccccWWWWiiiinnnnddddoooowwwwSSSSiiiizzzzeeee(((())))
  616.  
  617.           void ilDisplayCalcWindowSize(ilDisplay *obj, int* width,
  618.                                        int* height)
  619.  
  620.  
  621.           This method computes a window size that won't clip any of the images
  622.           in the current set of views, this size is clipped to the size of the
  623.           screen.
  624.  
  625.      ddddeeeelllleeeetttteeeeVVVViiiieeeewwww(((())))
  626.  
  627.           void ilDisplayDeleteView(ilDisplay *obj, ilView* view)
  628.           void ilDisplayDeleteViewIdx(ilDisplay *obj, int index)
  629.  
  630.  
  631.           Removes the specified view from the view stack and deletes the
  632.           ilView.  The display is then repainted.
  633.  
  634.      ddddeeeessssttttrrrrooooyyyyNNNNoooottttiiiiffffyyyy(((())))
  635.  
  636.           void ilDisplayDestroyNotify(ilDisplay *obj)
  637.  
  638.  
  639.           This method is intended to be called when the X window used by this
  640.           object has been destroyed, typically when a DestroyNotify X event is
  641.           handled.
  642.  
  643.      ddddiiiissssppppllllaaaayyyy(((())))
  644.  
  645.           void ilDisplayDisplay(ilDisplay *obj, ilView* view, int vMode,
  646.                                 int iMode)
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.                                                                        PPPPaaaaggggeeee 11110000
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  662.  
  663.  
  664.  
  665.           This function resizes, aligns, and paints the specified view. If
  666.           NULL is passed, then all views are operated on (except those with
  667.           nop flag set). If ilDefer is specified, then painting is deferred.
  668.           The view is resized to the size of the image. However, if ilClip is
  669.           specified, the view is clipped to the size of the display. The view
  670.           is aligned as specified in _v_M_o_d_e, and the image mapped to the view
  671.           is aligned as specified in _i_M_o_d_e.
  672.  
  673.      eeeennnnaaaabbbblllleeeeAAAAuuuuttttooooAAAAbbbboooorrrrtttt(((())))
  674.  
  675.           void ilDisplayEnableAutoAbort(ilDisplay *obj, int enable)
  676.  
  677.  
  678.           This method enables automatic aborting of queued requests; when this
  679.           mode is turned on any new painting operations will automatically
  680.           cancel paint operations in progress. This mode only makes sense if
  681.           queueing is enabled (see eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg()).
  682.  
  683.      eeeennnnaaaabbbblllleeeeCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  684.  
  685.           void ilDisplayEnableCallback(ilDisplay *obj, int enable)
  686.  
  687.  
  688.           This member function enables (_T_r_u_e) or disables (_F_a_l_s_e) the post-
  689.           render callback setup with sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(). Note that the callback
  690.           must be set and enabled to be operable.
  691.  
  692.      eeeennnnaaaabbbblllleeeeFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwww(((())))
  693.  
  694.           void ilDisplayEnableFrontRedraw(ilDisplay *obj, int enable)
  695.  
  696.  
  697.           This member function enables or disables drawing to the front buffer
  698.           when iiiillllDDDDiiiissssppppllllaaaayyyyRRRReeeeddddrrrraaaawwww() is called. This allows better visual feedback
  699.           when in double buffer mode.  If _T_r_u_e is passed then front redraw is
  700.           enabled. Otherwise, it is disabled.
  701.  
  702.      eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg(((())))
  703.  
  704.           void ilDisplayEnableQueueing(ilDisplay *obj, int enable)
  705.  
  706.  
  707.           This method controls whether queued painting is actually allowed,
  708.           the default mode is that queued painting will not be done.  When the
  709.           mode is enabled, call to various display operation (like mmmmoooovvvveeeeIIIImmmmgggg())
  710.           will return before the rendering is completed.  When another
  711.           operations is requested it will be started before waiting for the
  712.           last operation to complete to allow overlapped prefetching of data.
  713.           This mode is currently only supported on MP machines.
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                                                                        PPPPaaaaggggeeee 11111111
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  728.  
  729.  
  730.  
  731.           Completion of the queued operation can be ensured by calling the
  732.           ssssyyyynnnnccccPPPPaaaaiiiinnnntttt() method.  Queued operations can be aborted with the
  733.           aaaabbbboooorrrrtttt() method.
  734.  
  735.      ffffiiiinnnnddddEEEEddddggggeeee(((())))
  736.  
  737.           int ilDisplayFindEdge(ilDisplay *obj, int x, int y, int margin-1,
  738.                                 int mode)
  739.  
  740.  
  741.           Returns the edge or edges within _m_a_r_g_i_n pixels of _x and _y.  The view
  742.           stack is searched from top to bottom so that edges of the top view
  743.           are returned. However, ilNoEdge is returned if no edge is found and
  744.           ilNoView is returned if there is no view at the location specified
  745.           by _x and _y.
  746.  
  747.      ffffiiiinnnnddddVVVViiiieeeewwww(((())))
  748.  
  749.           ilView* ilDisplayFindView(ilDisplay *obj, int x, int y,
  750.                                     int mode)
  751.  
  752.  
  753.           Returns a pointer to the top-most ilView found at location (_x,_y)
  754.           within the display. If there is no view at (x,y), NULL is returned.
  755.           If ilDspCoord is passed in mode (default), then the (x,y)
  756.           coordinates are interpreted relative to the display window. If
  757.           ilScrCoord is passed in mode, then the (x,y) coordinates are
  758.           interpreted relative to the screen.
  759.  
  760.      fffflllluuuusssshhhh(((())))
  761.  
  762.           void ilDisplayFlush(ilDisplay *obj)
  763.  
  764.  
  765.           Flushes graphics commands that may be buffered. Usually, it is not
  766.           necessary to call flush in interactive applications.
  767.  
  768.      ggggeeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnndddd(((())))
  769.  
  770.           void ilDisplayGetBackground(ilDisplay *obj, float* red,
  771.                                       float* green, float* blue)
  772.  
  773.  
  774.           Returns the current background color in _r_e_d, _g_r_e_e_n and _b_l_u_e.  See
  775.           ilDisplaySetBackground()
  776.  
  777.      ggggeeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  778.  
  779.           void ilDisplayGetCallback(ilDisplay *obj, ilCallback** prepare,
  780.                                     ilCallback** render, ilCallback** finish)
  781.  
  782.  
  783.  
  784.  
  785.  
  786.                                                                        PPPPaaaaggggeeee 11112222
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  794.  
  795.  
  796.  
  797.           Returns pointers to the _p_r_e_p_a_r_e callback, _r_e_n_d_e_r callback and _f_i_n_i_s_h
  798.           callback in the repective parameters. These callbacks were
  799.           previousely set with sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(). See iiiillllVVVViiiieeeewwww and iiiillllVVVViiiieeeewwwwCCCCaaaallllllllbbbbaaaacccckkkk
  800.           for more information.
  801.  
  802.      ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((())))
  803.  
  804.           iflColorModel ilDisplayGetColorModel(ilDisplay *obj)
  805.  
  806.  
  807.           Returns the color model of the display image.
  808.  
  809.      ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((())))
  810.  
  811.           ilStatus ilDisplayGetColormap(ilDisplay *obj, iflColormap* cmap)
  812.  
  813.  
  814.           Returns the current colormap in _l_u_t. The colormap is used by
  815.           iiiillllXXXXDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg or iiiillllGGGGLLLLDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg, depending on the render mode.
  816.  
  817.      ggggeeeettttDDDDiiiissssppppllllaaaayyyy(((())))
  818.  
  819.           Display* ilDisplayGetDisplay(ilDisplay *obj)
  820.  
  821.  
  822.           Returns the X Display currently being used.
  823.  
  824.      ggggeeeettttGGGGLLLLXXXXCCCCoooonnnntttteeeexxxxtttt(((())))
  825.  
  826.           GLXContext ilDisplayGetGLXContext(ilDisplay *obj)
  827.  
  828.  
  829.           This method returns the OpenGL rendering context used by IL.  This
  830.           can be used to create display lists in a user context that can be
  831.           shared with the IL context, and thus used in the rendering
  832.           callbacks.  To do this the user context must be created specifying
  833.           the IL context as the _s_h_a_r_e_L_i_s_t parameter of ggggllllXXXXCCCCrrrreeeeaaaatttteeeeCCCCoooonnnntttteeeexxxxtttt().
  834.  
  835.      ggggeeeettttIIIILLLLDDDDiiiissssppppllllaaaayyyy(((())))
  836.  
  837.           Display* ilDisplayGetILDisplay(ilDisplay *obj)
  838.  
  839.  
  840.           This method returns the internal Display* that IL uses.  This is not
  841.           intended for use outside of IL.
  842.  
  843.      ggggeeeettttLLLLoooocccc(((())))
  844.  
  845.           ilView* ilDisplayGetLoc(ilDisplay *obj, float x, float y,
  846.                                   float* ix, float* iy, int mode)
  847.  
  848.  
  849.  
  850.  
  851.  
  852.                                                                        PPPPaaaaggggeeee 11113333
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  860.  
  861.  
  862.  
  863.           This function finds the view at (_x, _y) and returns the corresponding
  864.           location in the image in _i_x and _i_y. If _i_l_L_o_c_I_n is passed in _m_o_d_e,
  865.           the location is returned in the input space of the image.  If
  866.           _i_l_L_o_c_O_u_t is passed in _m_o_d_e, the location is returned in the output
  867.           space of the image. For example, if an ilRotZoomIng is mapped to the
  868.           view and _i_l_L_o_c_I_n is specified, _i_x and _i_y will correspond to the
  869.           location in the unzoomed image. However, if _i_l_L_o_c_O_u_t is specified,
  870.           _i_x and _i_y correspond to the location in the zoomed image.
  871.  
  872.      ggggeeeettttMMMMaaaarrrrggggiiiinnnn(((())))
  873.  
  874.           int ilDisplayGetMargin(ilDisplay *obj)
  875.  
  876.  
  877.           Returns the current margin in pixels that is used for ffffiiiinnnnddddEEEEddddggggeeee().
  878.  
  879.      ggggeeeettttMMMMoooouuuusssseeee(((())))
  880.  
  881.           void ilDisplayGetMouse(ilDisplay *obj, int* x, int* y)
  882.           void ilDisplayGetMouseOrientation(ilDisplay *obj, int* x,
  883.                                             int* y, iflOrientation orientation)
  884.  
  885.  
  886.           Returns the current XY location of the mouse. The mouse position is
  887.           set with sssseeeettttMMMMoooouuuusssseeee(((()))) and is updated by display operators that are
  888.           passed _i_l_R_e_l_V_a_l parameter mode. The values _x and _y, are returned for
  889.           the specified orientation. The first version, uses the current _e_v_e_n_t
  890.           orientation. This method is useful for some interactive
  891.           applications.
  892.  
  893.      ggggeeeettttNNNNuuuummmmVVVViiiieeeewwwwssss(((())))
  894.  
  895.           int ilDisplayGetNumViews(ilDisplay *obj)
  896.  
  897.  
  898.           Returns the number of ilViews in the view stack. The background view
  899.           can not be accessed and is not included in the count.
  900.  
  901.      ggggeeeettttPPPPiiiixxxxeeeellll(((())))
  902.  
  903.           ilView* ilDisplayGetPixel(ilDisplay *obj, int x, int y,
  904.                                     iflPixel* pix)
  905.  
  906.  
  907.           Copies into _p_i_x the pixel value at coordinates (_x, _y), in ilDisplay
  908.           coordinates. The pixel value is obtained from _v_i_e_w.  If _v_i_e_w is
  909.           NULL, then the view at _x,_y is found first.
  910.  
  911.      ggggeeeettttPPPPoooossss(((())))
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.                                                                        PPPPaaaaggggeeee 11114444
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  926.  
  927.  
  928.  
  929.           void ilDisplayGetPos(ilDisplay *obj, int* x, int* y)
  930.  
  931.  
  932.           Returns the current position of the ilDisplayImg within the display
  933.           window. ilDisplay creates a ilDisplayImg (X or GL) to perform the
  934.           actual rendering to the frame buffer. It is maintained at position
  935.           0, 0 within the display window.
  936.  
  937.      ggggeeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(((())))
  938.  
  939.           float ilDisplayGetRoamLimit(ilDisplay *obj)
  940.  
  941.  
  942.           Returns the roam limit previously set with iiiillllDDDDiiiissssppppllllaaaayyyySSSSeeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt().
  943.           The roam limit causes image movement to be limited in order to
  944.           facilitate smooth roaming with iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg() or
  945.           iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmggggIIIIddddxxxx(). The roam limit is used to calculate the
  946.           maximum roam rate in x and y for a given direction.
  947.  
  948.      ggggeeeettttRRRRooooaaaammmmRRRRaaaatttteeee(((())))
  949.  
  950.           void ilDisplayGetRoamRate(ilDisplay *obj, float* x, float* y)
  951.  
  952.  
  953.           Returns the horizontal and vertical roam rate in _x and _y.  If a roam
  954.           limit has been set with iiiillllDDDDiiiissssppppllllaaaayyyySSSSeeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(), then image movement
  955.           may be clipped when using iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg() or
  956.           iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmggggIIIIddddxxxx().  The returned values give the number of
  957.           pixels the image was moved in the x and y directions. The roam rate
  958.           is updated each time iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg() or iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmggggIIIIddddxxxx() is
  959.           called.
  960.  
  961.      ggggeeeettttSSSSiiiizzzzeeee(((())))
  962.  
  963.           void ilDisplayGetSize(ilDisplay *obj, int* x, int* y)
  964.  
  965.  
  966.           Returns the size of the ilDisplayImg into _x and _y.
  967.  
  968.      ggggeeeettttSSSSttttaaaattttuuuussss(((())))
  969.  
  970.           ilStatus ilDisplayGetStatus(ilDisplay *obj)
  971.  
  972.  
  973.           Returns the current status. See /_u_s_r/_i_n_c_l_u_d_e/_i_l/_i_l_E_r_r_o_r._h for a list
  974.           of error codes.
  975.  
  976.      ggggeeeettttVVVViiiieeeewwww(((())))
  977.  
  978.           ilView* ilDisplayGetViewImg(ilDisplay *obj, ilImage* img)
  979.           ilView* ilDisplayGetViewIdx(ilDisplay *obj, int index)
  980.  
  981.  
  982.  
  983.  
  984.                                                                        PPPPaaaaggggeeee 11115555
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  992.  
  993.  
  994.  
  995.           Returns a pointer to the ilView that corresponds to _i_d_x in the view
  996.           stack, or the bottom-most ilView containing _i_m_g. If no ilView is
  997.           found, NULL is returned. Note that the back view can not be
  998.           accessed.
  999.  
  1000.      ggggeeeettttVVVViiiieeeewwwwIIIInnnnddddeeeexxxx(((())))
  1001.  
  1002.           int ilDisplayGetViewIndexImg(ilDisplay *obj, ilImage* img)
  1003.           int ilDisplayGetViewIndex(ilDisplay *obj, ilView* view)
  1004.  
  1005.  
  1006.           Returns the index into the display's ilView corresponding to _v_i_e_w
  1007.           or, the index of the bottom-most ilView containing _i_m_g.  If _v_i_e_w or
  1008.           _i_m_g is not in the list, ilNoListIndex is returned.
  1009.  
  1010.      ggggeeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa(((())))
  1011.  
  1012.           void ilDisplayGetVisibleArea(ilDisplay *obj, int* x, int* y,
  1013.                                        int* nx, int* ny)
  1014.  
  1015.  
  1016.           Returns the current visible area. If the area is valid, then
  1017.           painting is limited to this area. This feature is useful for
  1018.           scrolled windows.  See iiiillllDDDDiiiissssppppllllaaaayyyySSSSeeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa() for more
  1019.           information.
  1020.  
  1021.      ggggeeeettttWWWWiiiinnnnddddoooowwww(((())))
  1022.  
  1023.           Window ilDisplayGetWindow(ilDisplay *obj)
  1024.  
  1025.  
  1026.           Returns the X Window currently being used.
  1027.  
  1028.      ggggeeeettttXXXXWWWWiiiinnnnddddoooowwwwIIIImmmmgggg(((())))
  1029.  
  1030.           ilXWindowImg* ilDisplayGetXWindowImg(ilDisplay *obj)
  1031.  
  1032.  
  1033.           This method returns the ilXWindowImg created by this object.  It is
  1034.           used for all rendering operations.
  1035.  
  1036.      iiiissssAAAAuuuuttttooooAAAAbbbboooorrrrttttEEEEnnnnaaaabbbblllleeeedddd(((())))
  1037.  
  1038.           int ilDisplayIsAutoAbortEnabled(ilDisplay *obj)
  1039.  
  1040.  
  1041.           Returns TRUE if auto-abort is enabled, FALSE otherwise.  See
  1042.           eeeennnnaaaabbbblllleeeeAAAAuuuuttttooooAAAAbbbboooorrrrtttt().
  1043.  
  1044.      iiiissssCCCCaaaallllllllbbbbaaaacccckkkkEEEEnnnnaaaabbbblllleeeedddd(((())))
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.                                                                        PPPPaaaaggggeeee 11116666
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1058.  
  1059.  
  1060.  
  1061.           int ilDisplayIsCallbackEnabled(ilDisplay *obj)
  1062.  
  1063.  
  1064.  
  1065.  
  1066.           Returns _T_R_U_E if the post-render callback is enabled. Otherwise it
  1067.           rerutns _F_A_L_S_E. See sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk() and eeeennnnaaaabbbblllleeeeCCCCaaaallllllllbbbbaaaacccckkkk().
  1068.  
  1069.      iiiissssDDDDeeeeffffeeeerrrr(((())))
  1070.  
  1071.           int ilDisplayIsDefer(ilDisplay *obj, ilView* view)
  1072.  
  1073.  
  1074.           Returns the state of the defer flag for the specified view. If _v_i_e_w
  1075.           is NULL, the state of the defer flag on ilDisplay is returned.
  1076.           Returns TRUE if painting is deferred, FALSE otherwise.
  1077.  
  1078.      iiiissssDDDDoooouuuubbbblllleeeeBBBBuuuuffffffffeeeerrrr(((())))
  1079.  
  1080.           int ilDisplayIsDoubleBuffer(ilDisplay *obj)
  1081.  
  1082.  
  1083.           Returns TRUE if double buffer mode is set, FALSE otherwise.
  1084.  
  1085.      iiiissssFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwwwEEEEnnnnaaaabbbblllleeeedddd(((())))
  1086.  
  1087.           int ilDisplayIsFrontRedrawEnabled(ilDisplay *obj)
  1088.  
  1089.  
  1090.           This member function returns _T_R_U_E if front redraw is enabled,
  1091.           otherwise it returns _F_A_L_S_E. See also iiiillllDDDDiiiissssppppllllaaaayyyyEEEEnnnnaaaabbbblllleeeeFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwww().
  1092.  
  1093.      iiiissssNNNNoooopppp(((())))
  1094.  
  1095.           int ilDisplayIsNop(ilDisplay *obj, ilView* view)
  1096.  
  1097.  
  1098.           Returns TRUE if the nop flag is set on the specified view, FALSE
  1099.           otherwise.  If view is NULL, then the view on the top of the stack
  1100.           is tested.
  1101.  
  1102.      iiiissssQQQQuuuueeeeuuuueeeeiiiinnnnggggEEEEnnnnaaaabbbblllleeeedddd(((())))
  1103.  
  1104.           int ilDisplayIsQueueingEnabled(ilDisplay *obj)
  1105.  
  1106.  
  1107.           Returns TRUE if queued rendering is enabled, FALSE otherwise.  See
  1108.           eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg().
  1109.  
  1110.      iiiissssRRRRggggbbbb(((())))
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.                                                                        PPPPaaaaggggeeee 11117777
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1124.  
  1125.  
  1126.  
  1127.           int ilDisplayIsRgb(ilDisplay *obj)
  1128.  
  1129.  
  1130.           Returns the GL color mode: TRUE for RGBmode, FALSE for colormap.
  1131.  
  1132.      iiiissssSSSSeeeelllleeeecccctttteeeedddd(((())))
  1133.  
  1134.           int ilDisplayIsSelected(ilDisplay *obj, ilView* view)
  1135.  
  1136.  
  1137.           Returns TRUE if the specified view is selected, FALSE otherwise.
  1138.           When an ilView is selected, its nop flag is FALSE and its borders
  1139.           are enabled.
  1140.  
  1141.      iiiissssSSSStttteeeerrrreeeeoooo(((())))
  1142.  
  1143.           int ilDisplayIsStereo(ilDisplay *obj)
  1144.  
  1145.  
  1146.           Returns TRUE if stereo viewing mode is available, FALSE otherwise.
  1147.           ilDisplay supports both monoscopic and stereoscopic views
  1148.           simultaneously within the same GL window. Stereo is only supported
  1149.           on InfiniteReality, RealityEngine and Impact graphics systems.
  1150.  
  1151.      mmmmaaaappppTTTTiiiilllleeee(((())))
  1152.  
  1153.           void ilDisplayMapTileFloat(ilDisplay *obj, iflOrientation fromOrientation,
  1154.                                      iflTile2Dfloat* tile, iflOrientation toOrientation(0))
  1155.           void ilDisplayMapTile(ilDisplay *obj, iflOrientation fromOrientation,
  1156.                                 iflTile2Dint* tile, iflOrientation toOrientation(0))
  1157.  
  1158.  
  1159.           Maps the specified _t_i_l_e from the _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to the
  1160.           _t_o_O_r_i_e_n_t_a_t_i_o_n relative to the ilXWindowImg used by ilDisplay. By
  1161.           default, the orientation of ilDisplay (upper-left) is used for
  1162.           _t_o_O_r_i_e_n_t_a_t_i_o_n.
  1163.  
  1164.      mmmmaaaappppXXXXYYYY(((())))
  1165.  
  1166.           void ilDisplayMapXYFloat(ilDisplay *obj, iflOrientation fromOrientation,
  1167.                                    float* x, float* y, iflOrientation toOrientation(0))
  1168.           void ilDisplayMapXY(ilDisplay *obj, iflOrientation fromOrientation,
  1169.                               int* x, int* y, iflOrientation toOrientation(0))
  1170.  
  1171.  
  1172.           Maps _i_x and _i_y from _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to _t_o_O_r_i_e_n_t_a_t_i_o_n and returns the
  1173.           result in _o_x and _o_y. By default, the orientation of ilDisplay
  1174.           (upper-left) is used for _t_o_O_r_i_e_n_t_a_t_i_o_n.
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.                                                                        PPPPaaaaggggeeee 11118888
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1190.  
  1191.  
  1192.  
  1193.      mmmmoooovvvveeeeIIIImmmmgggg(((())))
  1194.  
  1195.           void ilDisplayMoveImg(ilDisplay *obj, float x, float y,
  1196.                                 ilView* view, int mode)
  1197.           void ilDisplayMoveImgIdx(ilDisplay *obj, float x, float y,
  1198.                                 ilView* view, int idx, int mode)
  1199.  
  1200.  
  1201.           These functions move the image within the specified _v_i_e_w. If NULL is
  1202.           passed as _v_i_e_w, then the images are moved in all views in the stack
  1203.           (except those with nop flag set). The image is moved as specified by
  1204.           _x and _y. The _m_o_d_e controls how the function operates. If ilClip is
  1205.           passed in mode, the image position is clipped to prevent moving
  1206.           beyond the edge of the image. However, by default, the image can be
  1207.           moved beyond its edge, exposing the image's fill value. The view is
  1208.           painted after the image has been moved, unless ilDefer is passed in
  1209.           mode.
  1210.  
  1211.           The mode also controls how the _x and _y parameters are interpreted.
  1212.           If ilDelVal is passed in _m_o_d_e, x and y specify the change (delta) in
  1213.           the image position. If ilAbsVal is specified, x and y specify the
  1214.           new position of the image. Note that the image position corresponds
  1215.           to the upper-left corner of the view, rather than the origin of the
  1216.           image.
  1217.  
  1218.           If ilRelVal is passed in _m_o_d_e, then x and y are interpreted relative
  1219.           to a starting xy coordinate maintained within ilDisplay.  Typically,
  1220.           ilRelVal is used for interactive applications that use the mouse to
  1221.           control movement. The sssseeeettttMMMMoooouuuusssseeee() function on ilDisplay must be
  1222.           called to set the starting xy location. Then the difference between
  1223.           the starting xy location and the specified xy location is used to
  1224.           adjust the image position. The starting xy location is then updated.
  1225.           Specifying ilOldRel has the same effect as ilRelVal except that the
  1226.           starting xy location is not updated.
  1227.  
  1228.           The portion of the image being displayed resides in the cache of the
  1229.           input image. So as the image is moved within the view, old pages are
  1230.           discarded and new pages are brought into the cache.
  1231.  
  1232.           Note that if a roam limit has been set with sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(), that
  1233.           image movement may be clipped. See setRoamLimit() for more
  1234.           information.
  1235.  
  1236.           For those views displaying multiple images (i.e., iiiillllSSSStttteeeerrrreeeeooooVVVViiiieeeewwww), the
  1237.           function allows independent movement of each image within the view.
  1238.           For stereo views, the valid values for _i_d_x are ilViewImgPairLeft and
  1239.           ilViewImgPairRight.
  1240.  
  1241.      mmmmoooovvvveeeeVVVViiiieeeewwww(((())))
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.                                                                        PPPPaaaaggggeeee 11119999
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1256.  
  1257.  
  1258.  
  1259.           void ilDisplayMoveView(ilDisplay *obj, int x, int y, ilView* view,
  1260.                                  int mode)
  1261.  
  1262.  
  1263.           This function moves the specified view within the display. If NULL
  1264.           is passed, then the image is moved in all views in the stack (except
  1265.           those with nop flag set). The image is moved as specified by _x and
  1266.           _y. The _m_o_d_e controls how the function operates. If ilClip is passed
  1267.           in mode, the view position is clipped to prevent moving beyond the
  1268.           edge of the display. However, by default, the view can be moved
  1269.           beyond the edge of the display. The view is painted after the view
  1270.           has been moved, unless ilDefer is passed in mode. The mode also
  1271.           controls how the _x and _y parameters are interpreted.
  1272.  
  1273.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1274.           the view position. If ilAbsVal is specified, x and y specify the new
  1275.           position of the view. Note that the view position corresponds to the
  1276.           upper-left corner of the view relative to the upper-left corner of
  1277.           the display.
  1278.  
  1279.           If ilRelVal is passed in _m_o_d_e, then x and y are interpreted relative
  1280.           to a starting xy coordinate maintained within ilDisplay. Typically,
  1281.           ilRelVal is used for interactive applications that use the mouse to
  1282.           control movement. The sssseeeettttMMMMoooouuuusssseeee() function on ilDisplay must be
  1283.           called to set the starting _x_y location. Then the difference between
  1284.           the starting _x_y location and the specified _x_y location is used to
  1285.           adjust the view position. The starting _x_y location is then updated.
  1286.           Specifying ilOldRel has the same effect as ilRelVal except that the
  1287.           starting _x_y location is not updated.
  1288.  
  1289.      ppppaaaaiiiinnnntttt(((())))
  1290.  
  1291.           void ilDisplayPaint(ilDisplay *obj, ilView* view, int mode)
  1292.           void ilDisplayPaintArea(ilDisplay *obj, int x, int y,
  1293.                                   int nx, int ny, iflOrientation orientation,
  1294.                                   ilView* view, int mode)
  1295.  
  1296.  
  1297.           This function paints the specified view if it needs to be painted.
  1298.           If _N_U_L_L is passed, then all views are painted if needed (except
  1299.           those with nop flag set). If an area is specified with origin _x, _y
  1300.           and size _n_x, _n_y then only the specified area is painted. The area
  1301.           parameters are interpreted based on the _o_r_i_e_n_t_a_t_i_o_n specified.
  1302.  
  1303.           If iiiillllPPPPaaaaiiiinnnnttttEEEExxxxppppoooosssseeee is passed in _m_o_d_e, the view is forced to be
  1304.           painted. If iiiillllDDDDeeeeffffeeeerrrr is passed in _m_o_d_e, or if the view is deferred
  1305.           (see sssseeeettttDDDDeeeeffffeeeerrrr()), then the view is not be painted. The view
  1306.           position, size, and image position are unaffected.
  1307.  
  1308.      ppppoooopppp(((())))
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.                                                                        PPPPaaaaggggeeee 22220000
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1322.  
  1323.  
  1324.  
  1325.           void ilDisplayPop(ilDisplay *obj, ilView* view, int count)
  1326.  
  1327.  
  1328.           Pops _v_i_e_w up _c_o_u_n_t positions in the stack. If _c_o_u_n_t is zero, the
  1329.           view is popped to the top of the stack. If _v_i_e_w is NULL, the bottom
  1330.           view is popped.
  1331.  
  1332.      ppppuuuusssshhhh(((())))
  1333.  
  1334.           void ilDisplayPush(ilDisplay *obj, ilView* view, int count)
  1335.  
  1336.  
  1337.           Pushes _v_i_e_w down _c_o_u_n_t positions in the stack. If _c_o_u_n_t is zero, the
  1338.           view is pushed to the bottom of the stack. If _v_i_e_w is NULL, the top
  1339.           view is pushed.
  1340.  
  1341.      qqqqPPPPaaaaiiiinnnntttt(((())))
  1342.  
  1343.           void ilDisplayQPaint(ilDisplay *obj, ilMpNode* parent,
  1344.                                ilView* view, int mode, ilMpManager** pMgr)
  1345.           void ilDisplayQPaintArea(ilDisplay *obj, ilMpNode* parent,
  1346.                                    int x, int y, int nx, int ny,
  1347.                                    iflOrientation orientation,
  1348.                                    ilView* view, int mode, ilMpManager** pMgr)
  1349.  
  1350.  
  1351.           This function is identical to iiiillllDDDDiiiissssppppllllaaaayyyyPPPPaaaaiiiinnnntttt() except that the paint
  1352.           operation is queued and the function returns immediately. This
  1353.           allows the application thread to return to processing events and
  1354.           thus provide a responsive UI. See iiiillllMMMMppppMMMMaaaannnnaaaaggggeeeerrrr and iiiillllMMMMppppNNNNooooddddeeee for more
  1355.           information.
  1356.  
  1357.           If an iiiillllMMMMppppNNNNooooddddeeee is passed as _p_a_r_e_n_t, the paint requests are queued on
  1358.           the parent node. If _p_M_g_r is specified, the iiiillllMMMMppppMMMMaaaannnnaaaaggggeeeerrrr created to
  1359.           queue the paint requests is returned. This allows an application to
  1360.           setup a completion callback or wait for the queued requests to
  1361.           complete.
  1362.  
  1363.      rrrreeeeddddrrrraaaawwww(((())))
  1364.  
  1365.           void ilDisplayRedraw(ilDisplay *obj, int mode)
  1366.           void ilDisplayRedrawArea(ilDisplay *obj, int x, int y,
  1367.                                    int nx, int ny, iflOrientation orientation,
  1368.                                    int mode)
  1369.  
  1370.  
  1371.           Resizes the display and back view to the size of the display window
  1372.           and repaints all views. If an area is specified with origin _x, _y and
  1373.           size _n_x, _n_y then only the specified area is painted.  If iiiillllDDDDeeeeffffeeeerrrr is
  1374.           passed in _m_o_d_e, the display and back view are resized but not
  1375.           painted and all views are unaffected.  This function is useful when
  1376.           an expose event occurs.
  1377.  
  1378.  
  1379.  
  1380.                                                                        PPPPaaaaggggeeee 22221111
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1388.  
  1389.  
  1390.  
  1391.      rrrreeeemmmmoooovvvveeeeVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  1392.  
  1393.           ilStatus ilDisplayRemoveViewChangeCallback(ilDisplay *obj,
  1394.                                                      ilCallback* cb)
  1395.  
  1396.  
  1397.           This method removes a view add/delete callback previously added with
  1398.           aaaaddddddddVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk().
  1399.  
  1400.      ssssaaaavvvveeee(((())))
  1401.  
  1402.           ilStatus ilDisplaySave(ilDisplay *obj, ilImage* img, int x,
  1403.                                  int y, int mode)
  1404.  
  1405.  
  1406.           This function saves a region of the display area into the ilImage
  1407.           specified by _i_m_g. The region that is saved starts at the location
  1408.           specified by _x and _y and is the size of _i_m_g. By default, borders are
  1409.           not painted. However, if ilPaintBorder is passed in _m_o_d_e, then
  1410.           borders are painted on views with borders turned on.
  1411.  
  1412.      sssseeeelllleeeecccctttt(((())))
  1413.  
  1414.           void ilDisplaySelect(ilDisplay *obj, ilView* view)
  1415.  
  1416.  
  1417.           Selects the specified view. If NULL is passed, then all views in the
  1418.           view stack are selected. When a view is selected, its nop flag is
  1419.           FALSE and its borders are enabled.
  1420.  
  1421.      sssseeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnndddd(((())))
  1422.  
  1423.           void ilDisplaySetBackground(ilDisplay *obj, float red,
  1424.                                       float green, float blue)
  1425.  
  1426.  
  1427.           Sets the ilDisplay's background color to that specified by _r_e_d,
  1428.           _g_r_e_e_n and _b_l_u_e. The values are assumed to be normalized to the range
  1429.           0.0 to 1.0.
  1430.  
  1431.      sssseeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnnddddDDDDiiiirrrrttttyyyy(((())))
  1432.  
  1433.           void ilDisplayBackgroundSetDirty(ilDisplay *obj)
  1434.  
  1435.  
  1436.           Indicates that the ilDisplay's background needs to be repainted for
  1437.           some external reason (e.g. graphics drawn on top that need to be
  1438.           updated).
  1439.  
  1440.      sssseeeettttBBBBoooorrrrddddeeeerrrrCCCCoooolllloooorrrr(((())))
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.                                                                        PPPPaaaaggggeeee 22222222
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1454.  
  1455.  
  1456.  
  1457.           void ilDisplaySetBorderColor(ilDisplay *obj, float red,
  1458.                                        float green, float blue)
  1459.  
  1460.  
  1461.           Sets the border color to _r_e_d, _g_r_e_e_n and _b_l_u_e on all views in the
  1462.           stack. The values are assumed to be normalized to the range 0.0 to
  1463.           1.0.  See also iiiillllVVVViiiieeeewwww.
  1464.  
  1465.      sssseeeettttBBBBoooorrrrddddeeeerrrrSSSSttttyyyylllleeee(((())))
  1466.  
  1467.           void ilDisplaySetBorderStyle(ilDisplay *obj, int style)
  1468.  
  1469.  
  1470.           Sets the border style on all views, to that specified by _s_t_y_l_e. By
  1471.           default, view borders are set to iiiillllVVVViiiieeeewwwwBBBBddddrrrrSSSSoooolllliiiiddddLLLLiiiinnnneeeessss.  See iiiillllVVVViiiieeeewwww
  1472.           for more information.
  1473.  
  1474.      sssseeeettttBBBBoooorrrrddddeeeerrrrWWWWiiiiddddtttthhhh(((())))
  1475.  
  1476.           void ilDisplaySetBorderWidth(ilDisplay *obj, int width)
  1477.  
  1478.  
  1479.           Sets the border width to _w_i_d_t_h on all views in the stack.
  1480.  
  1481.      sssseeeettttBBBBoooorrrrddddeeeerrrrssss(((())))
  1482.  
  1483.           void ilDisplaySetBorders(ilDisplay *obj, int enable, int mode)
  1484.  
  1485.  
  1486.           Sets the border flag on all views in the stack to the specified
  1487.           value.  If _f_l_a_g is TRUE, then borders are turned on, otherwise
  1488.           borders are turned off. Borders will be painted or erased unless
  1489.           defer mode has been set.
  1490.  
  1491.      sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  1492.  
  1493.           void ilDisplaySetCallback(ilDisplay *obj, ilCallback* prepare,
  1494.                                     ilCallback* render, ilCallback* finish)
  1495.  
  1496.  
  1497.           Sets the post-render callback which is associated with the back
  1498.           view.  The callback is called after all views have been rendered.
  1499.           There are actually three callbacks: _p_r_e_p_a_r_e, _r_e_n_d_e_r and _f_i_n_i_s_h.  The
  1500.           prepare callback is called by one of the compute threads to perform
  1501.           any pre-rendering allocations or computations. Then the render
  1502.           callback is called by the IL's render thread to perform actual
  1503.           rendering into the display window. This callback must execute as
  1504.           efficiently as possible to achieve maximum performance. It is called
  1505.           by the IL's render thread to minimize context switching. Any state
  1506.           changes made by the callback must be restored prior to completion.
  1507.           Finally, the finish callback is called by one of the compute threads
  1508.           to perform any de-allocation or cleanup required. The prepare and
  1509.  
  1510.  
  1511.  
  1512.                                                                        PPPPaaaaggggeeee 22223333
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1520.  
  1521.  
  1522.  
  1523.           finish callbacks may be set to NULL if not required. See iiiillllVVVViiiieeeewwww and
  1524.           iiiillllVVVViiiieeeewwwwCCCCaaaallllllllbbbbaaaacccckkkk for more information.
  1525.  
  1526.      sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((())))
  1527.  
  1528.           void ilDisplaySetColormap(ilDisplay *obj, iflColormap* cmap)
  1529.  
  1530.  
  1531.           Sets the colormap to the ilLut specified by _c_m_a_p. The colormap is
  1532.           used by iiiillllXXXXDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg or iiiillllGGGGLLLLDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg depending on the render
  1533.           mode. Note that this will override the iiiillllDDDDeeeeffffaaaauuuullllttttCCCCmmmmaaaapppp mode passed to
  1534.           the constructor.
  1535.  
  1536.      sssseeeettttDDDDeeeeffffeeeerrrr(((())))
  1537.  
  1538.           void ilDisplaySetDefer(ilDisplay *obj, int def, ilView* view)
  1539.  
  1540.  
  1541.           Sets the state of the defer flag on the specified view. If _v_i_e_w is
  1542.           NULL, then the defer flag on ilDisplay is set. If _d_e_f_e_r is TRUE,
  1543.           then painting does not occur or is deferred. When painting is
  1544.           deferred, changes to a view's position, size or image position are
  1545.           accumulated until the view can be painted. Note that ilDisplay can
  1546.           be deferred or each individual ilView can be deferred.
  1547.  
  1548.      sssseeeettttLLLLoooocccc(((())))
  1549.  
  1550.           ilView* ilDisplaySetLoc(ilDisplay *obj, float ix, float iy,
  1551.                                   float x, float y, int mode)
  1552.  
  1553.  
  1554.           This function finds the view at xy and sets the location in the
  1555.           image specified by _i_x and _i_y to the location in the display
  1556.           specified by _x and _y. The image is moved as needed to relocate the
  1557.           specified point. If iiiillllLLLLooooccccIIIInnnn is passed in _m_o_d_e, the location is found
  1558.           in the input space of the image.  If iiiillllLLLLooooccccIIIInnnn is passed in _m_o_d_e, the
  1559.           location is found in the output space of the image.  For example, if
  1560.           an ilRotZoomIng is mapped to the view and ilLocIn is specified, _i_x
  1561.           and _i_y correspond to the location in the unrotated image. However,
  1562.           if ilLocOut is specified, _i_x and _i_y correspond to the location in
  1563.           the rotated image. The relocation can be accomplished by moving
  1564.           either the image or the view. If iiiillllLLLLooooccccVVVViiiieeeewwww is specified then the
  1565.           view is moved, alternatively if iiiillllLLLLooooccccIIIImmmmgggg is specified (default) then
  1566.           the image is moved.
  1567.  
  1568.      sssseeeettttMMMMaaaarrrrggggiiiinnnn(((())))
  1569.  
  1570.           void ilDisplaySetMargin(ilDisplay *obj, int margin)
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.                                                                        PPPPaaaaggggeeee 22224444
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1586.  
  1587.  
  1588.  
  1589.           Sets the default margin to the number of pixels specified in _m_a_r_g_i_n.
  1590.           This margin is used by ffffiiiinnnnddddEEEEddddggggeeee() if no margin is specified.
  1591.  
  1592.      sssseeeettttMMMMooooddddeeee(((())))
  1593.  
  1594.           void ilDisplaySetMode(ilDisplay *obj, int mode)
  1595.  
  1596.  
  1597.           Sets the display mode as specified by _m_o_d_e. This display mode is
  1598.           added to the mode used to create new views with aaaaddddddddVVVViiiieeeewwww().  For
  1599.           example, if ilDefer is set in the display mode, then ilDefer will be
  1600.           added to the mode passed to addView().
  1601.  
  1602.      sssseeeettttMMMMoooouuuusssseeee(((())))
  1603.  
  1604.           void ilDisplaySetMouse(ilDisplay *obj, int x, int y, int mode)
  1605.  
  1606.  
  1607.           Sets the starting mouse location to the coordinate _x, _y.  Note that
  1608.           x and y are interpreted in the current event space, which is
  1609.           determined by the type of window (X or GL) being used.  This method
  1610.           is typically used to preset mouse values to initialize an
  1611.           interactive display operation loop such as moving a view.
  1612.  
  1613.      sssseeeettttNNNNoooopppp(((())))
  1614.  
  1615.           void ilDisplaySetNop(ilDisplay *obj, int noOp, ilView* view)
  1616.  
  1617.  
  1618.           Sets NOP state for the specified view. If view is NULL, then all
  1619.           views are set. If set to TRUE, display operations are disabled on
  1620.           this view until the flag is set to FALSE.
  1621.  
  1622.      sssseeeettttPPPPiiiixxxxeeeellll(((())))
  1623.  
  1624.           ilView* ilDisplaySetPixel(ilDisplay *obj, int x, int y,
  1625.                                     iflPixel* pix)
  1626.  
  1627.  
  1628.           Sets the pixel located _x and _y to the value specified in _p_i_x.  First
  1629.           the view at _x,_y is found using ffffiiiinnnnddddVVVViiiieeeewwww() and sssseeeettttPPPPiiiixxxxeeeellll() is called
  1630.           on that ilView. See the ilView man page for more information.
  1631.  
  1632.      sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(((())))
  1633.  
  1634.           void ilDisplaySetRoamLimit(ilDisplay *obj, float maxRoamDel.0)
  1635.  
  1636.  
  1637.           Sets the maximum number of pixels an image can move.  The roam limit
  1638.           causes image movement to be limited in order to facilitate smooth
  1639.           roaming with iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg(). The roam limit is used to calculate
  1640.           the maximum roam rate in x and y for a given direction. If
  1641.  
  1642.  
  1643.  
  1644.                                                                        PPPPaaaaggggeeee 22225555
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1652.  
  1653.  
  1654.  
  1655.           _m_a_x_R_o_a_m_D_e_l is set to 0.0 or negative, the roam limit is disabled.
  1656.  
  1657.      sssseeeettttSSSSttttaaaattttuuuussss(((())))
  1658.  
  1659.           void ilDisplaySetStatus(ilDisplay *obj, ilStatus stat)
  1660.  
  1661.  
  1662.           Sets the status of ilDisplay to the ilStatus specified in _s_t_a_t.  See
  1663.           also ggggeeeettttSSSSttttaaaattttuuuussss().
  1664.  
  1665.      sssseeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa(((())))
  1666.  
  1667.           void ilDisplaySetVisibleArea(ilDisplay *obj, int x, int y,
  1668.                                        int nx, int ny)
  1669.  
  1670.  
  1671.           Sets the visible area within the display window in order to
  1672.           optimally support scrolled windows. The origin of the area is
  1673.           specified as _x, _y and the size of the area is specified by _n_x, _n_y.
  1674.           This causes painting to be clipped to the visual area.  If _0 is
  1675.           passed for all area parameters then this function is disabled.
  1676.  
  1677.      sssseeeettttWWWWiiiinnnnddddoooowwww(((())))
  1678.  
  1679.           void ilDisplaySetWindow(ilDisplay *obj, Window win, int mode)
  1680.  
  1681.  
  1682.           Sets the display window to the X window specified in _w_i_n and
  1683.           reinitializes ilDisplay. The render mode and display mode are
  1684.           specified as in the constructor. This function is used to change the
  1685.           configuration of the display window used by ilDisplay.
  1686.  
  1687.      sssspppplllliiiitttt(((())))
  1688.  
  1689.           void ilDisplaySplit(ilDisplay *obj, int mode)
  1690.  
  1691.  
  1692.           This function repositions and resizes all views in the view stack so
  1693.           that all views are visible. The _m_o_d_e specifies how the views are
  1694.           arranged. Starting at the bottom of the view stack, views are placed
  1695.           starting at the upper left corner of the display.  The various split
  1696.           modes are listed below:
  1697.  
  1698.           _i_l_A_b_s_S_p_l_i_t All images are aligned based on the align mode
  1699.                      specified (ilBottomLeft by default).
  1700.  
  1701.           _i_l_R_e_l_S_p_l_i_t All images are positioned relative to the view
  1702.                      position.
  1703.  
  1704.           _i_l_R_o_w_S_p_l_i_t The views are arranged in rows.
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.                                                                        PPPPaaaaggggeeee 22226666
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1718.  
  1719.  
  1720.  
  1721.           _i_l_C_o_l_S_p_l_i_t The views are arranged in columns.
  1722.  
  1723.           _i_l_P_a_c_k_S_p_l_i_t Views sizes are clipped to the size of the image and
  1724.                      packed together.
  1725.  
  1726.           The relative split mode causes images to be positioned so that the
  1727.           image continues from one view to the next.  Any combination of these
  1728.           split modes can be used. For example, if
  1729.           ilRowSplit | ilColSplit is specified in _m_o_d_e, views are arranged
  1730.           into an equal number of rows and columns.
  1731.  
  1732.      sssswwwwaaaapppp(((())))
  1733.  
  1734.           void ilDisplaySwap(ilDisplay *obj, ilView* view1, ilView* view2)
  1735.  
  1736.  
  1737.           Swaps the positions in the view stack of the two views specified.
  1738.  
  1739.      ssssyyyynnnnccccPPPPaaaaiiiinnnntttt(((())))
  1740.  
  1741.           void ilDisplaySyncPaint(ilDisplay *obj)
  1742.  
  1743.  
  1744.           This method will not return until all queued rendering requests are
  1745.           completed.  See eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg().
  1746.  
  1747.      uuuunnnnsssseeeelllleeeecccctttt(((())))
  1748.  
  1749.           void ilDisplayUnselect(ilDisplay *obj, ilView* view)
  1750.  
  1751.  
  1752.           Unselects the specified view. If NULL is passed, then all views in
  1753.           the view stack are unselected (except those with nop flag set).
  1754.           When a view is unselected, its nop flag is TRUE and its borders are
  1755.           disabled.
  1756.  
  1757.      uuuuppppddddaaaatttteeee(((())))
  1758.  
  1759.           void ilDisplayUpdate(ilDisplay *obj, int x, int y, int nx,
  1760.                                int ny, float imgX, float imgY,
  1761.                                ilView* view, int mode)
  1762.  
  1763.  
  1764.           This function allows the view position, view size and image position
  1765.           to be adjusted for the specified view. If no view is specified, then
  1766.           all views are updated. The view is moved as specified by _x and _y.
  1767.           The view size is adjusted as specified by _n_x and _n_y. The image is
  1768.           moved within the view as specified by _i_m_g_X and _i_m_g_Y. All three
  1769.           adjustments are clipped if ilClip is passed in _m_o_d_e. After all three
  1770.           adjustments are made the view is painted, unless ilDefer is passed
  1771.           in _m_o_d_e.
  1772.  
  1773.  
  1774.  
  1775.  
  1776.                                                                        PPPPaaaaggggeeee 22227777
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1784.  
  1785.  
  1786.  
  1787.           If ilDelVal is passed in _m_o_d_e, all parameters specify the change
  1788.           (delta) in position and size. If ilAbsVal is specified, all
  1789.           parameters specify the absolute position or size. If ilRelVal is
  1790.           passed in _m_o_d_e, then all parameters are interpreted relative to a
  1791.           starting xy coordinate maintained within ilDisplay. ilRelVal is not
  1792.           recommended for use with this operator. See ilDisplayMoveView and
  1793.           ilDisplayMoveImg for more details.
  1794.  
  1795.      uuuuppppddddaaaatttteeeeWWWWiiiinnnnddddoooowwww(((())))
  1796.  
  1797.           void ilDisplayUpdateWindow(ilDisplay *obj)
  1798.  
  1799.  
  1800.           This function is used to reinitialize the ilDisplay when the
  1801.           configuration of the display window has been changed. For example,
  1802.           if the GL window is changed from RGB mode to color index,
  1803.           uuuuppppddddaaaatttteeeeWWWWiiiinnnnddddoooowwww() must be called.
  1804.  
  1805.      wwwwiiiippppeeee(((())))
  1806.  
  1807.           void ilDisplayWipe(ilDisplay *obj, int x, int y, ilView* view,
  1808.                              int mode)
  1809.  
  1810.  
  1811.           This function moves one or more edges on the specified view. If NULL
  1812.           is passed, then all views are wiped (except those with nop flag
  1813.           set). The edge or edges to move are specified in _m_o_d_e. For example,
  1814.           if ilRightEdge is passed in mode, the right edge of the view moves
  1815.           as specified by _x and _y. In addition, if ilTopEdge | ilRightEdge (or
  1816.           ilTopRight) is specified, then the upper right corner is moved. Note
  1817.           that the value returned by ffffiiiinnnnddddEEEEddddggggeeee() can be used directly.
  1818.  
  1819.           In general, a wipe operation resizes the view. However, if ilAllEdge
  1820.           is passed in mode, then all edges of the view are moved and the view
  1821.           size is unchanged.  This operation is referred to as an _i_n_s_e_t - the
  1822.           image is stationary and the view moves. This is the opposite of
  1823.           moving the image within the view. When comparing images, wiping is
  1824.           very useful.
  1825.  
  1826.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1827.           the image position. If ilAbsVal is specified, _x and _y specify the
  1828.           new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and
  1829.           _y are interpreted relative to a starting _x_y coordinate maintained
  1830.           within ilDisplay.
  1831.  
  1832.           If ilClip is passed in _m_o_d_e, the the edge is not allowed to move
  1833.           beyond the edge of the image. However, by default the edge can be
  1834.           moved beyond the edge of the image, exposing the image's fill value.
  1835.           If ilDefer is passed in _m_o_d_e, then the view is not painted after the
  1836.           operation.
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.                                                                        PPPPaaaaggggeeee 22228888
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1850.  
  1851.  
  1852.  
  1853.      wwwwiiiippppeeeeSSSSiiiizzzzeeee(((())))
  1854.  
  1855.           void ilDisplayWipeSize(ilDisplay *obj, int x, int y, ilView* view,
  1856.                                  int mode)
  1857.  
  1858.  
  1859.           This function moves an edge or corner and the opposite edge or
  1860.           corner on the specified view. If NULL is passed, then all views in
  1861.           the view stack are affected (except those with nop flag set).  The
  1862.           edge or corner passed in _m_o_d_e is moved as specified by _x and _y. In
  1863.           addition, the opposite edge or corner is moved in the opposite
  1864.           direction. This causes the view to grow or shrink by moving opposite
  1865.           edges or corners. For example, if the right edge is moved right by
  1866.           ten pixels, the left edge is also moved left by ten pixels. Note
  1867.           that the value returned by ffffiiiinnnnddddEEEEddddggggeeee(((()))) can be used directly.
  1868.  
  1869.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1870.           the image position. If ilAbsVal is specified, _x and _y specify the
  1871.           new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and
  1872.           _y are interpreted relative to a starting _x_y coordinate maintained
  1873.           within ilDisplay.
  1874.  
  1875.      wwwwiiiippppeeeeSSSSpppplllliiiitttt(((())))
  1876.  
  1877.           void ilDisplayWipeSplit(ilDisplay *obj, int x, int y,
  1878.                                   int mode)
  1879.  
  1880.  
  1881.           This function moves the edge on all views, found by calling
  1882.           ffffiiiinnnnddddEEEEddddggggeeee(((()))) on ilDisplay. All of these edges are moved as specified
  1883.           by _x and _y. For example, if two views are displayed side-by-side,
  1884.           the right edge of the left view and the left edge of the right view
  1885.           can be moved simultaneously. This is useful after a split operation.
  1886.  
  1887.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1888.           the image position. If ilAbsVal is specified, _x and _y specify the
  1889.           new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and
  1890.           _y are interpreted relative to a starting _x_y coordinate maintained
  1891.           within ilDisplay.
  1892.  
  1893. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1894.      ilXWindowImg, ilView, ilViewIter, <il/ilDisplayDefs.h>
  1895.  
  1896.  
  1897. NNNNOOOOTTTTEEEESSSS
  1898.      Many display operators take a _m_o_d_e parameter which is a bit-wise
  1899.      inclusive OR of various flags defined in ilDisplayDefs.h. These flags are
  1900.      interpreted based on which operator is called. For example, iiiillllCCCCeeeennnntttteeeerrrr can
  1901.      be used to align a view or can be used to locate  the center of a view.
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.                                                                        PPPPaaaaggggeeee 22229999
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1916.  
  1917.  
  1918.  
  1919.      All views in the view stack are deleted when ilDisplay is deleted.
  1920.  
  1921.      ilViewIter can be used to iterate through the view stack. It is declared
  1922.      in _i_l_D_i_s_p_l_a_y._h
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.                                                                        PPPPaaaaggggeeee 33330000
  1975.  
  1976.  
  1977.  
  1978.